library(psych)
library(corrplot)
corrplot 0.92 loaded
library(haven)
library(dplyr)
library(magrittr)
dados <- readRDS(here("data", "STU_QQQ_5.rds"))
dados
colSums(is.na(dados))
PV1SCIE PV1READ PV1MATH SOCONPA BODYIMA GCAWAREP INTCULTP
5377 41320 5377 534956 536507 612004 612004
ATTIMMP JOYREADP PRESUPP PASCHPOL PQSCHOOL EMOSUPP CURSUPP
612004 520815 519825 520641 519999 520772 519740
FLFAMILY FLSCHOOL FLCONICT FLCONFIN INFOJOB2 INFOJOB1 INFOCAR
612004 612004 612004 612004 390359 390359 382412
ICTOUTSIDE ICTCLASS SOIAICT AUTICT COMPICT INTICT USESCH
283481 275263 310331 306205 299011 292761 298901
HOMESCH ENTUSE BEINGBULLIED BELONG DISCRIM GLOBMIND AWACOM
288643 271459 147660 77867 612004 612004 612004
RESPECT COGFLEX PERSPECT INTCULT ATTIMM GCAWARE GCSELFEFF
612004 612004 612004 612004 612004 612004 612004
MASTGOAL RESILIENCE SWBP EUDMO GFOFAIL WORKMAST COMPETE
71452 74444 124918 105309 69899 66094 55755
ATTLNACT PERCOOP PERCOMP PISADIFF SCREADDIFF SCREADCOMP JOYREAD
46324 147207 132669 59460 73950 70810 38233
TEACHINT ADAPTIVITY STIMREAD EMOSUPS PERFEED DIRINS TEACHSUP
60699 44478 43247 129289 64409 57856 60365
DISCLIMA ICTRES WEALTH HEDRES CULTPOSS HOMEPOS ICTSCH
32662 15676 13737 17705 23446 11400 256547
ICTHOME ESCS STUBMI CHANGE SCCHANGE FCFMLRTY TMINS
249475 14379 540769 381656 379993 612004 222268
SMINS LMINS MMINS AGE GRADE ST061Q01NA ST060Q01NA
148178 143593 143986 0 3019 118181 144404
ST059Q03TA ST059Q02TA ST059Q01TA ST016Q01NA IMMIG HISEI BFMJ2
136286 131373 130630 118802 32568 47647 110980
BMMJ1 HISCED FISCED MISCED ISCEDL ST001D01T REPEAT
84576 17657 32575 21433 6869 0 36532
PROGN OCOD3 OCOD2 OCOD1 ST004D01T CNT
0 0 0 0 2 0
# A coluna dos Paises não tem nulos
sum(is.na(dados$CNT))
[1] 0
unique(dados$CNT)
<labelled<character>[80]>: Country code 3-character
[1] ALB ARE ARG AUS AUT BEL BGR BIH BLR BRA BRN CAN CHE CHL COL CRI CZE DEU DNK DOM ESP EST FIN
[24] FRA GBR GEO GRC HKG HRV HUN IDN IRL ISL ISR ITA JOR JPN KAZ KOR KSV LBN LTU LUX LVA MAC MAR
[47] MDA MEX MKD MLT MNE MYS NLD NOR NZL PAN PER PHL POL PRT QAT QAZ QCI QMR QRT ROU RUS SAU SGP
[70] SRB SVK SVN SWE TAP THA TUR UKR URY USA VNM
Labels:
dados %>%
mutate(NumNulos = rowSums(is.na(.))) %>%
group_by(CNT) %>%
summarize(TotalNulos = sum(NumNulos),
NumLinhas = n(),
PercentNulos = (TotalNulos / (NumLinhas * ncol(dados))) * 100,
MeanScience = mean(PV1SCIE, na.rm = TRUE),
MeanRead = mean(PV1READ, na.rm = TRUE),
MeanMath = mean(PV1MATH, na.rm = TRUE),
.groups = "drop") %>%
arrange(desc(NumLinhas))
mutate: new variable 'NumNulos' (double) with 75 unique values and 0% NA
group_by: one grouping variable (CNT)
summarize: now 80 rows and 7 columns, ungrouped
Irlanda <- dados %>% filter(CNT == "IRL")
filter: removed 606,427 rows (99%), 5,577 rows remaining
Irlanda
dim(Irlanda)
describe(Irlanda)
IrlandaSemiLimpa <- Irlanda %>% select(where(~ !all(is.na(.))))
select: dropped 18 variables (GCAWAREP, INTCULTP, ATTIMMP, FLFAMILY, FLSCHOOL, …)
dim(IrlandaSemiLimpa)
[1] 5577 86
IrlandaLimpa <- na.omit(IrlandaSemiLimpa)
dim(IrlandaLimpa)
[1] 1133 86
Irlanda <- IrlandaLimpa %>% select_if(is.numeric)
select_if: dropped 5 variables (PROGN, OCOD3, OCOD2, OCOD1, CNT)
rm(IrlandaLimpa)
rm(IrlandaSemiLimpa)
Irlanda
describe(Irlanda)
identificar_outliers <- function(coluna) {
desvio_padrao <- sd(coluna)
limite_superior <- mean(coluna) + 3 * desvio_padrao
limite_inferior <- mean(coluna) - 3 * desvio_padrao
outliers <- coluna < limite_inferior | coluna > limite_superior
return(outliers)
}
# Identificar outliers em cada coluna
outliers_por_coluna <- lapply(Irlanda, identificar_outliers)
# Mostrar os valores outliers em cada coluna
for (i in 1:length(outliers_por_coluna)) {
coluna <- outliers_por_coluna[[i]]
coluna_outliers <- Irlanda[coluna, i]
if (length(coluna_outliers) > 0) {
print(paste("Coluna:", names(Irlanda)[i]))
print(coluna_outliers)
}
}
Após realizada a limpeza dos dados, podemos então passar finalmente para a criação de PCA, a fim de se conseguir reduzir a dimensionalidade da base de dados, que possui 86 colunas. Antes de prosseguir, é necessário reter alguns pontos sobre como aplicar o PCA:
O PCA é mais eficaz quando as variáveis estão correlacionadas entre si.
Antes de aplicar o PCA, é importante verificar se as variáveis estão em escalas comparáveis. Variáveis em diferentes escalas podem ter diferentes variações e isso pode distorcer a análise do PCA.
#Correlation plot with colors (too many attributes)
correlation <- cor(Irlanda)
corrplot(correlation)
#Correlation matrix
round(correlation, 3)
KMO(correlation)
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = correlation)
Overall MSA = 0.72
MSA for each item =
PV1SCIE PV1READ PV1MATH SOCONPA BODYIMA JOYREADP PRESUPP
0.81 0.82 0.85 0.81 0.85 0.83 0.66
PASCHPOL PQSCHOOL EMOSUPP CURSUPP INFOJOB2 INFOJOB1 INFOCAR
0.58 0.60 0.75 0.80 0.62 0.88 0.89
ICTOUTSIDE ICTCLASS SOIAICT AUTICT COMPICT INTICT USESCH
0.74 0.74 0.84 0.77 0.77 0.80 0.81
HOMESCH ENTUSE BEINGBULLIED BELONG MASTGOAL RESILIENCE SWBP
0.76 0.79 0.73 0.84 0.84 0.87 0.85
EUDMO GFOFAIL WORKMAST COMPETE ATTLNACT PERCOOP PERCOMP
0.86 0.78 0.86 0.75 0.79 0.88 0.75
PISADIFF SCREADDIFF SCREADCOMP JOYREAD TEACHINT ADAPTIVITY STIMREAD
0.90 0.83 0.87 0.88 0.86 0.89 0.88
EMOSUPS PERFEED DIRINS TEACHSUP DISCLIMA ICTRES WEALTH
0.82 0.86 0.86 0.86 0.77 0.89 0.62
HEDRES CULTPOSS HOMEPOS ICTSCH ICTHOME ESCS STUBMI
0.63 0.63 0.66 0.75 0.93 0.75 0.61
CHANGE SCCHANGE TMINS SMINS LMINS MMINS AGE
0.56 0.55 0.33 0.57 0.48 0.49 0.90
GRADE ST061Q01NA ST060Q01NA ST059Q03TA ST059Q02TA ST059Q01TA ST016Q01NA
0.74 0.40 0.45 0.58 0.53 0.50 0.84
IMMIG HISEI BFMJ2 BMMJ1 HISCED FISCED MISCED
0.69 0.64 0.78 0.79 0.65 0.85 0.84
ISCEDL ST001D01T REPEAT ST004D01T
0.91 0.74 0.69 0.66
O KMO (Kaiser-Meyer-Olkin) é uma medida estatÃstica utilizada para avaliar a adequação dos dados para realizar uma análise de fator ou análise de componentes principais (PCA). O valor do KMO varia de 0 a 1 e, quanto mais próximo de 1, melhor a adequação dos dados para uma análise de fator ou PCA. Valores de KMO acima de 0,6 são geralmente considerados adequados para análises exploratórias, enquanto valores acima de 0,8 são considerados muito bons.
Vamos então visualizar as variáveis que não são adequadas para aplica o PCA
kmo_result <- KMO(correlation)
str(kmo_result)
List of 5
$ MSA : num 0.723
$ MSAi : Named num [1:81] 0.809 0.816 0.854 0.808 0.852 ...
..- attr(*, "names")= chr [1:81] "PV1SCIE" "PV1READ" "PV1MATH" "SOCONPA" ...
$ Image: num [1:81, 1:81] 1 -0.5502 -0.3359 0.052 0.0268 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:81] "PV1SCIE" "PV1READ" "PV1MATH" "SOCONPA" ...
.. ..$ : chr [1:81] "PV1SCIE" "PV1READ" "PV1MATH" "SOCONPA" ...
$ ImCov: num [1:81, 1:81] 0.18073 -0.09548 -0.07312 0.01733 0.00881 ...
$ Call : language KMO(r = correlation)
- attr(*, "class")= chr [1:2] "psych" "KMO"
# Obtém as variáveis com KMO abaixo de 0.6
low_kmo_variables <- kmo_result$MSAi[kmo_result$MSAi < 0.6]
length(low_kmo_variables)
[1] 12
low_kmo_variables
PASCHPOL CHANGE SCCHANGE TMINS SMINS LMINS MMINS ST061Q01NA
0.5815240 0.5576719 0.5460819 0.3305456 0.5686265 0.4825795 0.4939057 0.3988630
ST060Q01NA ST059Q03TA ST059Q02TA ST059Q01TA
0.4461742 0.5753859 0.5256166 0.5018066
# Obtém as variáveis com KMO acima, ou igual, a 0.8
high_kmo_variables <- kmo_result$MSAi[kmo_result$MSAi >= 0.8]
length(high_kmo_variables)
[1] 36
high_kmo_variables
PV1SCIE PV1READ PV1MATH SOCONPA BODYIMA JOYREADP CURSUPP INFOJOB1
0.8086847 0.8155320 0.8543864 0.8077840 0.8523109 0.8344543 0.8030142 0.8828375
INFOCAR SOIAICT USESCH BELONG MASTGOAL RESILIENCE SWBP EUDMO
0.8937649 0.8366801 0.8075617 0.8383781 0.8408561 0.8733766 0.8537895 0.8588286
WORKMAST PERCOOP PISADIFF SCREADDIFF SCREADCOMP JOYREAD TEACHINT ADAPTIVITY
0.8611020 0.8770575 0.8960076 0.8339614 0.8706319 0.8776463 0.8610038 0.8868079
STIMREAD EMOSUPS PERFEED DIRINS TEACHSUP ICTRES ICTHOME AGE
0.8793670 0.8154674 0.8639114 0.8649556 0.8557519 0.8940781 0.9263751 0.9019460
ST016Q01NA FISCED MISCED ISCEDL
0.8428537 0.8461257 0.8437996 0.9065449
O teste de esfericidade de Bartlett é um teste estatÃstico que avalia se as variáveis em um conjunto de dados estão correlacionadas entre si. Ele verifica a hipótese nula de que a matriz de correlação populacional é uma matriz de identidade, o que significa que as variáveis são independentes e não correlacionadas.
cortest.bartlett(correlation)
Warning: n not specified, 100 used
$chisq
[1] 6537.174
$p.value
[1] 7.324155e-225
$df
[1] 3240
Se o valor-p (p-value) calculado no teste de esfericidade de Bartlett for menor que 0.05, isso sugere evidências estatÃsticas para rejeitar a hipótese nula de que as variáveis são independentes e não correlacionadas, por outras palavras, existe uma correlação significativa entre as variáveis em questão. Isso significa que as variáveis não podem ser consideradas independentes e que existe algum grau de relação entre elas.
data_scaled <- scale(Irlanda)
data_scaled %>% glimpse()
num [1:1133, 1:81] 0.62 -2.055 0.787 1.03 0.446 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:81] "PV1SCIE" "PV1READ" "PV1MATH" "SOCONPA" ...
- attr(*, "scaled:center")= Named num [1:81] 546.789 568.293 543.74 0.207 -0.175 ...
..- attr(*, "names")= chr [1:81] "PV1SCIE" "PV1READ" "PV1MATH" "SOCONPA" ...
- attr(*, "scaled:scale")= Named num [1:81] 77.575 79.867 67.508 0.874 0.902 ...
..- attr(*, "names")= chr [1:81] "PV1SCIE" "PV1READ" "PV1MATH" "SOCONPA" ...
Nesta parte, passaremos então para o processo de criação de PCA’s. Podemos então começar por pensar algumas ideias por alto, podendo ser estas:
colunas <- colnames(data_scaled)
colunas
[1] "PV1SCIE" "PV1READ" "PV1MATH" "SOCONPA" "BODYIMA" "JOYREADP"
[7] "PRESUPP" "PASCHPOL" "PQSCHOOL" "EMOSUPP" "CURSUPP" "INFOJOB2"
[13] "INFOJOB1" "INFOCAR" "ICTOUTSIDE" "ICTCLASS" "SOIAICT" "AUTICT"
[19] "COMPICT" "INTICT" "USESCH" "HOMESCH" "ENTUSE" "BEINGBULLIED"
[25] "BELONG" "MASTGOAL" "RESILIENCE" "SWBP" "EUDMO" "GFOFAIL"
[31] "WORKMAST" "COMPETE" "ATTLNACT" "PERCOOP" "PERCOMP" "PISADIFF"
[37] "SCREADDIFF" "SCREADCOMP" "JOYREAD" "TEACHINT" "ADAPTIVITY" "STIMREAD"
[43] "EMOSUPS" "PERFEED" "DIRINS" "TEACHSUP" "DISCLIMA" "ICTRES"
[49] "WEALTH" "HEDRES" "CULTPOSS" "HOMEPOS" "ICTSCH" "ICTHOME"
[55] "ESCS" "STUBMI" "CHANGE" "SCCHANGE" "TMINS" "SMINS"
[61] "LMINS" "MMINS" "AGE" "GRADE" "ST061Q01NA" "ST060Q01NA"
[67] "ST059Q03TA" "ST059Q02TA" "ST059Q01TA" "ST016Q01NA" "IMMIG" "HISEI"
[73] "BFMJ2" "BMMJ1" "HISCED" "FISCED" "MISCED" "ISCEDL"
[79] "ST001D01T" "REPEAT" "ST004D01T"
correlation1 <- cor(data_scaled[, -1], data_scaled[, 1])
# Definir o limite de correlação desejado
limite_correlacao <- 0.3
# Identificar as colunas com correlação forte
colunas_fortes <- row.names(correlation1)[which(abs(correlation1) > limite_correlacao)]
colunas_fortes <- append(colunas_fortes, "PV1SCIE")
# Exibir as colunas com correlação forte
print(colunas_fortes)
[1] "PV1READ" "PV1MATH" "PISADIFF" "SCREADDIFF" "SCREADCOMP" "JOYREAD" "PV1SCIE"
pc1 <- principal(data_scaled[, colunas_fortes], nfactors=length(colunas_fortes), rotate="none")
pc1$loadings
Loadings:
PC1 PC2 PC3 PC4 PC5 PC6 PC7
PV1READ 0.872 0.343 -0.208 -0.268
PV1MATH 0.781 0.494 0.361
PISADIFF -0.706 0.278 0.398 0.510
SCREADDIFF -0.668 0.541 0.229 -0.255 0.377
SCREADCOMP 0.739 -0.449 0.269 0.420
JOYREAD 0.603 -0.250 0.714 -0.217 -0.114
PV1SCIE 0.844 0.421 -0.189 0.269
PC1 PC2 PC3 PC4 PC5 PC6 PC7
SS loadings 3.935 1.173 0.739 0.452 0.340 0.215 0.146
Proportion Var 0.562 0.168 0.106 0.065 0.049 0.031 0.021
Cumulative Var 0.562 0.730 0.835 0.900 0.948 0.979 1.000
plot(pc1$values, type = "b", main = "Scree plot for Desempenho acadêmico",
xlab = "Number of PC", ylab = "Eigenvalue")
round(pc1$values,3)
[1] 3.935 1.173 0.739 0.452 0.340 0.215 0.146
round(pc1$communality,3)
PV1READ PV1MATH PISADIFF SCREADDIFF SCREADCOMP JOYREAD PV1SCIE
1 1 1 1 1 1 1
#Assume the number of components = 34
pc34 <- principal(data_scaled, nfactors=3, rotate="none")
Warning: Matrix was not positive definite, smoothing was doneWarning: The matrix is not positive semi-definite, scores found from Structure loadings
pc34$loadings
Loadings:
PC1 PC2 PC3
PV1SCIE 0.404 -0.321 -0.255
PV1READ 0.456 -0.273 -0.260
PV1MATH 0.425 -0.297 -0.187
SOCONPA 0.273 0.255 0.162
BODYIMA 0.180 0.199 0.239
JOYREADP 0.311 -0.152 -0.143
PRESUPP 0.184
PASCHPOL 0.218 0.106
PQSCHOOL 0.164 0.157 0.102
EMOSUPP 0.220
CURSUPP 0.309
INFOJOB2
INFOJOB1 0.577 -0.238
INFOCAR 0.155 0.481 -0.308
ICTOUTSIDE 0.134
ICTCLASS 0.157 0.155 -0.110
SOIAICT 0.115 0.182 0.307
AUTICT 0.212 0.204
COMPICT 0.241 0.180
INTICT 0.147 0.162
USESCH 0.444
HOMESCH 0.173 0.305
ENTUSE 0.134 0.225 0.150
BEINGBULLIED -0.118 -0.131
BELONG 0.225 0.231 0.275
MASTGOAL 0.408 0.166 0.211
RESILIENCE 0.371 0.270 0.306
SWBP 0.233 0.307 0.255
EUDMO 0.217 0.332 0.342
GFOFAIL -0.182
WORKMAST 0.317 0.262 0.231
COMPETE 0.161 0.132
ATTLNACT 0.253 0.126 0.117
PERCOOP 0.230 0.295 0.278
PERCOMP 0.131 0.161 0.133
PISADIFF -0.403 0.111
SCREADDIFF -0.390
SCREADCOMP 0.492
JOYREAD 0.432 -0.129
TEACHINT 0.281 0.263 0.272
ADAPTIVITY 0.282 0.327 0.373
STIMREAD 0.310 0.296 0.380
EMOSUPS 0.357 0.256 0.171
PERFEED 0.237 0.162 0.344
DIRINS 0.176 0.334 0.426
TEACHSUP 0.265 0.308 0.386
DISCLIMA 0.120 0.114 0.102
ICTRES 0.533
WEALTH 0.458
HEDRES 0.536
CULTPOSS 0.606 -0.102 -0.127
HOMEPOS 0.750
ICTSCH 0.227 0.172
ICTHOME 0.341
ESCS 0.792 -0.286 -0.267
STUBMI
CHANGE
SCCHANGE
TMINS 0.185
SMINS -0.349 0.332
LMINS -0.382 0.482
MMINS -0.436 0.499
AGE 0.424 -0.411
GRADE 0.464 -0.467
ST061Q01NA
ST060Q01NA 0.186
ST059Q03TA -0.356 0.322
ST059Q02TA -0.477 0.512
ST059Q01TA -0.416 0.478
ST016Q01NA 0.239 0.335 0.249
IMMIG 0.116
HISEI 0.541 -0.314 -0.290
BFMJ2 0.498 -0.250 -0.185
BMMJ1 0.428 -0.252 -0.286
HISCED 0.524 -0.256 -0.248
FISCED 0.493 -0.247 -0.196
MISCED 0.480 -0.228 -0.259
ISCEDL 0.560 -0.568
ST001D01T 0.464 -0.467
REPEAT 0.179
ST004D01T 0.184
PC1 PC2 PC3
SS loadings 7.313 5.243 5.012
Proportion Var 0.090 0.065 0.062
Cumulative Var 0.090 0.155 0.217
#Screeplot - Find the elbow
plot(pc34$values, type = "b", main = "Scree plot for FIFA19 dataset",
xlab = "Number of PC", ylab = "Eigenvalue")
#Eigenvalues - Variances of the principal components
round(pc34$values,3)
[1] 7.313 5.243 5.012 3.919 3.486 3.117 2.958 2.342 2.257 2.070 1.854 1.805 1.688 1.610 1.431
[16] 1.398 1.276 1.218 1.159 1.097 1.085 1.020 1.002 0.966 0.948 0.911 0.905 0.865 0.822 0.781
[31] 0.759 0.747 0.732 0.715 0.695 0.666 0.652 0.645 0.643 0.623 0.597 0.586 0.576 0.559 0.542
[46] 0.524 0.507 0.495 0.482 0.472 0.463 0.456 0.432 0.425 0.414 0.410 0.398 0.375 0.369 0.359
[61] 0.341 0.338 0.336 0.317 0.294 0.278 0.239 0.173 0.169 0.157 0.142 0.114 0.088 0.065 0.029
[76] 0.025 0.011 0.010 0.003 0.001 0.000
#Using Kaiser criterion (9 component solution)
#5 component solution without rotation
pc9 <- principal(data_scaled, nfactors=9, rotate="none", scores=TRUE)
Warning: Matrix was not positive definite, smoothing was doneWarning: The matrix is not positive semi-definite, scores found from Structure loadings
#communality of 5 component solution
round(pc9$communality,3)
PV1SCIE PV1READ PV1MATH SOCONPA BODYIMA JOYREADP PRESUPP
0.701 0.747 0.605 0.340 0.517 0.170 0.059
PASCHPOL PQSCHOOL EMOSUPP CURSUPP INFOJOB2 INFOJOB1 INFOCAR
0.103 0.138 0.160 0.208 0.120 0.491 0.500
ICTOUTSIDE ICTCLASS SOIAICT AUTICT COMPICT INTICT USESCH
0.195 0.143 0.443 0.489 0.470 0.263 0.386
HOMESCH ENTUSE BEINGBULLIED BELONG MASTGOAL RESILIENCE SWBP
0.383 0.399 0.232 0.370 0.436 0.499 0.414
EUDMO GFOFAIL WORKMAST COMPETE ATTLNACT PERCOOP PERCOMP
0.444 0.384 0.401 0.184 0.259 0.238 0.172
PISADIFF SCREADDIFF SCREADCOMP JOYREAD TEACHINT ADAPTIVITY STIMREAD
0.512 0.436 0.548 0.521 0.559 0.587 0.616
EMOSUPS PERFEED DIRINS TEACHSUP DISCLIMA ICTRES WEALTH
0.367 0.399 0.564 0.634 0.265 0.670 0.709
HEDRES CULTPOSS HOMEPOS ICTSCH ICTHOME ESCS STUBMI
0.432 0.439 0.869 0.173 0.470 0.942 0.064
CHANGE SCCHANGE TMINS SMINS LMINS MMINS AGE
0.347 0.354 0.117 0.532 0.597 0.604 0.486
GRADE ST061Q01NA ST060Q01NA ST059Q03TA ST059Q02TA ST059Q01TA ST016Q01NA
0.880 0.186 0.280 0.562 0.760 0.720 0.557
IMMIG HISEI BFMJ2 BMMJ1 HISCED FISCED MISCED
0.217 0.667 0.427 0.464 0.674 0.511 0.561
ISCEDL ST001D01T REPEAT ST004D01T
0.910 0.880 0.098 0.417
#5 component solution with rotation (varimax)
pc9r <- principal(data_scaled, nfactors=9, rotate="varimax")
Warning: Matrix was not positive definite, smoothing was doneWarning: The matrix is not positive semi-definite, scores found from Structure loadings
pc9r$loadings
Loadings:
RC1 RC4 RC2 RC5 RC3 RC7 RC6 RC9 RC8
PV1SCIE 0.201 0.802 -0.117
PV1READ 0.181 0.820 -0.131 0.129
PV1MATH 0.205 0.747
SOCONPA 0.120 0.403 -0.141 0.146 0.338
BODYIMA 0.681 -0.177
JOYREADP 0.252 0.213 0.102 0.174
PRESUPP 0.113 0.199
PASCHPOL 0.248 0.156
PQSCHOOL 0.286 0.208
EMOSUPP 0.113 -0.105 0.358
CURSUPP 0.204 0.385
INFOJOB2 0.323
INFOJOB1 -0.128 0.647 -0.127 0.108 0.144
INFOCAR 0.641 -0.108 0.214 0.166
ICTOUTSIDE 0.114 -0.169 0.342 0.147
ICTCLASS -0.180 0.250 0.108 0.113
SOIAICT 0.184 0.608 -0.136
AUTICT 0.293 0.592 -0.175
COMPICT 0.268 0.604
INTICT 0.126 0.489
USESCH -0.238 0.345 -0.164 0.386 0.149
HOMESCH -0.304 0.133 0.147 0.390 0.139 0.269
ENTUSE -0.102 0.596 0.138
BEINGBULLIED -0.124 -0.338 0.295
BELONG 0.597
MASTGOAL 0.146 0.152 0.160 0.165 0.576
RESILIENCE 0.165 0.585 0.258 0.236
SWBP 0.586 0.230
EUDMO -0.158 0.102 0.587 0.114 0.224
GFOFAIL -0.547 0.271
WORKMAST 0.135 0.279 0.205 0.497
COMPETE 0.157 0.221 0.323
ATTLNACT 0.483
PERCOOP 0.254 0.317 0.247
PERCOMP 0.293 0.238
PISADIFF -0.691
SCREADDIFF -0.623 -0.106 -0.121
SCREADCOMP 0.666 0.113 0.150 0.233
JOYREAD 0.160 0.471 0.149 -0.219 0.441
TEACHINT 0.725 0.136
ADAPTIVITY 0.741 0.177
STIMREAD 0.766 0.120
EMOSUPS 0.126 0.338 0.108 0.472
PERFEED 0.606 0.125
DIRINS 0.726 0.126
TEACHSUP 0.781 0.132
DISCLIMA 0.114 0.102 0.442 -0.197
ICTRES 0.252 0.179 0.754
WEALTH 0.186 0.126 0.804
HEDRES 0.228 0.144 0.156 0.512 0.244
CULTPOSS 0.413 0.197 0.110 0.348 0.287
HOMEPOS 0.411 0.117 0.154 0.781 0.218
ICTSCH -0.285 0.154 0.184 0.134
ICTHOME 0.155 -0.158 0.141 0.624
ESCS 0.861 0.122 0.413 0.111
STUBMI -0.112 -0.107 0.163
CHANGE 0.189 -0.236 0.353 -0.342
SCCHANGE 0.206 -0.162 0.338 -0.387
TMINS 0.297
SMINS 0.184 0.693 -0.103
LMINS -0.109 -0.172 0.721 -0.141
MMINS -0.249 0.703 -0.160
AGE 0.680 -0.131
GRADE 0.928
ST061Q01NA 0.130 -0.263 0.122 0.108 0.102 -0.228
ST060Q01NA -0.160 0.429 0.199
ST059Q03TA 0.139 0.733
ST059Q02TA -0.221 0.840
ST059Q01TA -0.141 0.832
ST016Q01NA 0.721 0.102
IMMIG 0.142 -0.112 0.333 -0.222
HISEI 0.793 0.113 -0.111 0.107
BFMJ2 0.624 0.132 0.122
BMMJ1 0.659 -0.105
HISCED 0.816
FISCED 0.706
MISCED 0.740
ISCEDL 0.939 -0.149
ST001D01T 0.928
REPEAT -0.174 0.121 -0.179
ST004D01T -0.107 0.331 0.179 -0.508
RC1 RC4 RC2 RC5 RC3 RC7 RC6 RC9 RC8
SS loadings 4.89 4.438 4.373 4.050 3.928 3.822 3.565 3.389 3.190
Proportion Var 0.06 0.055 0.054 0.050 0.048 0.047 0.044 0.042 0.039
Cumulative Var 0.06 0.115 0.169 0.219 0.268 0.315 0.359 0.401 0.440